package com.bottle.service;

import com.bottle.enity.TokenAuth;
import com.bottle.enity.User;
import com.bottle.enity.UserBridge;
import com.bottle.mode.BridgeInfo;

import java.util.List;
import java.util.Set;

/**
 * @author: chenyuncong
 * @Date: 2020/4/29 18:02
 */
public interface UserService {


    //经过运算获取到用户自己的在线用户
    Set<String> userOnLineSet(String userId, BridgeInfo bridgeInfo, Set<String> onLineAll);

    User getUserByAccount(String account);

    //获取最新一条认证
    TokenAuth getTokenAuth(String jwt);

    //所有用户ID加密后加进缓存
    void loadAllUserIdToCache();

    User getUserById(String userId);

    //添加用户
    User saveUser(User u);

    //更新用户数据
    void updateUser(User u);

    UserBridge addFriend(String encrUserId, String enrcFriendId);

    //添加用户桥梁（用户关系）
    UserBridge saveUserBridge(UserBridge ub);

    //根据账号密码查询是否存在
    User checkUserLogin(String account, String password);

    List<UserBridge> getEncryptionIdsByUserId(String userId);

    //使用 加密关系id 获取 里面对应的用户id
    Set<String> getUserIdByEncryptionId(String encryptionId);
}
